<!DOCTYPE html>
<head>  
  <meta charset="utf-8">  

  <style>

  .chart rect {
    fill: steelblue;
  }

  .chart text {
    fill: white;
    font: 10px sans-serif;
    text-anchor: end;
  }

  </style>

</head>
<body>

  <svg class="chart"></svg>

  <script src="lib/d3.min.js"></script>
  <script>

  var width = 420
  barHeight = 20;

  var x = d3.scale.linear()
  .range([0, width]);

  var chart = d3.select(".chart")
  .attr("width", width);

  d3.tsv("data.tsv", type, function(error, data) {
    x.domain([0, d3.max(data, function(d) { return d.value; })]);

    chart.attr("height", barHeight * data.length);

    var bar = chart.selectAll("g")
    .data(data)
    .enter().append("g")
    .attr("transform", function(d, i) { return "translate(0," + i * barHeight + ")"; });

    bar.append("rect")
    .attr("width", function(d) { return x(d.value); })
    .attr("height", barHeight - 1);

    bar.append("text")
    .attr("x", function(d) { return x(d.value) - 3; })
    .attr("y", barHeight / 2)
    .attr("dy", ".35em")
    .text(function(d) { return d.value; });
  });

  function type(d) {
      d.value = +d.value; // coerce to number
      return d;
    }

    </script>

  </body>

  </html>